import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
import type { AppRouter } from '../../../api/src/trpc/router';

// 获取 API 基础 URL
function getBaseUrl() {
  // 优先使用环境变量中配置的API URL
  const apiUrl = (import.meta as any).env.VITE_API_URL;

  if (apiUrl) {
    return apiUrl;
  }

  // 如果没有配置环境变量，则根据环境判断
  if (typeof window !== 'undefined') {
    // 浏览器环境 - 开发模式使用默认本地地址
    return (import.meta as any).env?.DEV
      ? 'http://localhost:3001'
      : 'http://52.77.253.74:3017'; // 生产环境默认后端地址
  }

  // 服务器环境默认地址
  return 'http://localhost:3001';
}

// 获取认证token
function getAuthToken() {
  if (typeof window !== 'undefined') {
    return localStorage.getItem('auth_token');
  }
  return null;
}

// 创建 tRPC 客户端
export const trpc = createTRPCProxyClient<AppRouter>({
  links: [
    httpBatchLink({
      url: `${getBaseUrl()}/trpc`,
      headers() {
        const token = getAuthToken();

        return {
          'Content-Type': 'application/json',
          ...(token && { Authorization: `Bearer ${token}` }),
        };
      },
    }),
  ],
});

// 导出类型
export type { AppRouter };
